#pragma once

#include <mfapi.h>
typedef unsigned long uint32;


struct  MediaTypeMap
{
	uint32 ppbox_mediaType;
	uint32 ffmpeg_mediaType;
	GUID mf_mediaType;
	uint32 decoderFlag;   //0 no need decoder 1 need video decoder 2 need audio decoer
};

class MediaTypeConvert
{
public:
	static MediaTypeMap const * find_by_ppbox_type(
		uint32 ppbox_type);

	static MediaTypeMap const * find_by_ffmpeg_type(
		uint32 ffmpeg_type);

	static MediaTypeMap const * find_by_mf_type(
		GUID mf_type);

	static MediaTypeMap const * table();

	static size_t count();

private:
	static MediaTypeMap const table_[];


};

/*public ref class MediaTypeConvert sealed
{
public:
uint32 get_ppbox_type(
uint32 ppbox_type,
uint32 ffmpeg_type,
Platform::Guid mf_type);

uint32 get_ffmpeg_type(
uint32 ppbox_type,
uint32 ffmpeg_type,
Platform::Guid mf_type);

Platform::Guid get_MF_type(
uint32 ppbox_type,
uint32 ffmpeg_type,
Platform::Guid mf_type);

};*/



